Đây là SIMT (Đơn chỉ thị, Nhiều luồng) mô hình là nhịp đập trung tâm của kiến trúc GPU. Trong khi bạn lập trình từng luồng riêng biệt, phần cứng sẽ điều phối chúng thành một cấu trúc phân cấp hai tầng gồm các lưới và các khối. Để tối đa hóa hiệu suất, phần cứng tiếp tục chia nhỏ các khối này thành các đơn vị gồm 32 luồng được gọi là warps.
1. SIMT so với SIMD
Khác với SIMD trên CPU (như SSE/AVX), nơi bạn phải tự đóng gói dữ liệu vào thanh ghi, SIMT cho phép các luồng dường như độc lập với nhau. Phần cứng sẽ tự động nhóm các luồng thành các warp, lấy một lệnh duy nhất để thực thi đồng bộ trên toàn bộ 32 luồng.
2. Quy tắc Chuyển đổi tuyến tính
Người lập trình sử dụng threadIdx.x, y, z để lập luận, nhưng phần cứng chuyển đổi điều này thành một chuỗi 1 chiều để lên lịch:
Bởi vì phương x là chỉ số thay đổi nhanh nhất, các luồng có giá trị threadIdx.x liên tiếp thường rơi vào cùng một warp, điều này rất quan trọng đối với tập hợp bộ nhớ.